Intelligent piconet forming

ABSTRACT

When connecting a unit to one or more existing ad hoc wireless networks comprising several units, the units e.g. adapted to communicate according to the Bluetooth specification and the network then being formed according to the same specification to comprise one or more piconets, a unit can discover the units which are the masters in the networks, and then connect as a slave to those masters. Specifically it does not have to use the master-slave switch according to the Bluetooth specification. In the first stage of the unit trying to make a connection it establishes contact with at least one unit in an existing ad hoc network and then additional information on the status, in particular the role of master or slave, of the unit already connected in the network is transferred to the not yet connected unit. This information facilitates the decision of the unconnected unit as to which unit in the network that it should try to correct to. Then, in the actual connecting of the unit to the network, the roles of the unit and of the already connected unit can be chosen by the unit wanting to be connected. In particular, the initially inquiring and paging unit may become a slave unit in a newly formed piconet or in an already existing piconet.

The present invention relates to forming ad hoc wireless networks, moreparticularly to ad hoc networks formed according to the Bluetoothspecification, and connecting a unit to an already existing ad hocnetwork.

BACKGROUND

Bluetooth (BT) is a relatively new specification for wirelesscommunication of data and voice based on a low-cost short-range radiolink. It can be built into a 9×9 mm microchip, what facilitates ad hocconnections for both stationary and mobile communication environments.Information in this application is in part based on the Bluetoothspecification, “Specification of the Bluetooth System”, Jul. 26, 1999,the entirety of which is hereby incorporated by reference.

The original intention in making the specification of Bluetooth was toeliminate cables between telephones, PC-cards (Personal Computer cards),wireless headsets, etc., but today the Bluetooth specification is usedfor establishing true ad hoc wireless networks intended for bothsynchronous traffic, e.g. voice, and asynchronous traffic, e.g. datatraffic based on the IP (the Internet Protocol). Now the intention ofthe Bluetooth specification comprises that any commodity device such astelephones, personal digital assistants (PDAs), laptop computers,digital cameras video monitors, printers, fax machines, etc. should becapable of communicating over a radio interface, i.e. any of thesedevices could contain a radio chip made according to the Bluetoothspecification and having the software specified therefor.

In addition to merely replacing the cables between various devices, theuse of the Bluetooth specification in various device provides a bridgeto existing data networks and their peripheral devices, and a mechanismto form small private ad hoc groupings for connected devices away fromfixed network structures or connected to a fixed network structure via agateway. According to the Bluetooth specification the wirelesscommunication uses a fast acknowledgement and frequency hopping schemeto make the radio links between devices adapted to communicate accordingto the Bluetooth specification robust. The devices avoid interferencewith one another by hopping to a new frequency or channel aftertransmitting or receiving a packet. Compared to other systems operatingin the same frequency band, in the wireless communication according tothe Bluetooth specification typically frequency hops are made faster andshorter packets are used. The radio band used by devices adapted tocommunicate according to the Bluetooth specification is the unlicensed2.4 GHz Industrial-Scientific-Medical (ISM) band with a channel spacingof 1 MHz.

A device adapted to communicate according to the Bluetooth specificationincludes a radio unit, a link control unit and a support unit for linkmanagement and host terminal interface function. According to thespecification a point-to-point connection can be provided in the case,where only two units adapted to communicate according to the Bluetoothspecification are involved, or a point-to-multipoint connection in thecase of more than two units. For a point-to-multipoint connection, theradio band is shared by several units adapted to communicate accordingto the Bluetooth specification. Two or more units adapted to communicateaccording to the Bluetooth specification form a small network called apiconet, see FIGS. 1 a-1 c. Within a piconet, a unit adapted tocommunicate according to the Bluetooth specification can have either oftwo roles: it can be a master or a slave. Within each piconet there maybe only oral master and one slave, see FIG. 1 a, or more than one up toseven active slaves, see FIG. 1 b. Any unit adapted to communicateaccording to the Bluetooth specification can become a master in apiconet.

Furthermore, two or more piconets can be interconnected, form acomposite network called a scatternet, see FIG. 1 c. The connectionpoint between two piconets consists of a unit C adapted to communicateaccording to the Bluetooth specification that is a member of bothpiconets. A unit adapted to communicate according to the Bluetoothspecification can simultaneously be a slave member of multiple piconets,but only a master in one piconet, and thus a unit adapted to communicateaccording to the Bluetooth specification and acting as a master in onepiconet can participate in other piconets only as a slave. A unitadapted to communicate according to the Bluetooth specification can onlytransmit and receive data in one piconet at a time, and thereforeparticipation in multiple piconets is made on a time division multiplexbasis.

The Bluetooth specification provides full-duplex transmission built onslotted Time Division Duplex (TDD), where each slot is 0.625 ms long.The time slots are numbered sequentially using a large number range,which is cyclic with a cycle length of 227. Master-to-slave transmissionalways starts in an even-numbered time slot while slave-to-mastertransmission always starts in an odd-numbered time slot. The combinationof an even-numbered time slot and its subsequent odd-numbered time slotis called a frame, the frame thus including a master-to-slave time slotand a slave-to-master time slot, except in the case where multi-slotpackets are used and longer frames are used. There is no directtransmission between slaves, neither within a piconet or between twodifferent piconets.

The communication within a piconet is organised such that the masterpolls each slave according to some polling schedule. With one exception,a slave is only allowed to transmit after having been polled by themaster. The slave will then start its transmission in theslave-to-master time slot immediately following the packet received fromthe master. The master may or may not include data in the packet used topoll a slave. The only exception to the above principle is that when aslave is connected by an established Synchronous Connection Oriented(SCO) link it is always allowed to transmit in the pre-allocatedslave-to-master time slot, even if not explicitly polled by the masterin the preceding master-to-slave time slot.

Each unit adapted to communicate according to the Bluetoothspecification has a globally unique 48-bit IEEE 802 address. Thisaddress, called the Bluetooth unit Address (BD_ADDR), is assigned at thetime when the unit is manufactured and it is never changed. In additionthereto the master of a piconet assigns a local Active Member Address(AM_ADDR) to each active slave member of the piconet. The AM_ADDR, whichis only three bits long, is dynamically assigned and de-assigned and isunique only within a single piconet. The master uses the AM_ADDR whenpolling a slave in a piconet. However, when the slave, triggered by apacket from the master addressed using the AM_ADDR of the slave,transmits a packet to the master, it includes its own AM_ADDR and notthe AM_ADDR of the master in the packet header since an AM_ADDR of themaster does not exist. Thus, the master of a piconet never assigns anAM_ADDR to itself.

Although all data are transmitted in packets, the packets can carry bothsynchronous data, on the mentioned Synchronous Connection Orientedlinks, mainly intended for voice traffic, and asynchronous data, onAsynchronous ConnectionLess (ACL) links. An SCO link is a symmetricpoint-to-point link between the master and a specific slave. The SCOlink reserves slots and can therefore be considered as acircuit-switched connection between the master and the slave. An ACLlink is a point-to-multipoint link between the master and all the slavesparticipating in the piconet. Slots may be reserved for SCO links, asindicated above, and in slots not reserved for such links the master canestablish an ACL link on a per slot basis to any slave. The ACL linkprovides a packet-switched connection between the master and all activeslaves participating in the piconet.

Depending on the type of packet used, an acknowledgement andretransmission scheme is used to ensure reliable transfer of data, sucha scheme not being used for packets on SCO links transferringsynchronous data. Forward error correction (FEC) in the form of channelcoding is also used which limits the impact of random noise onlong-distance links.

The standard format of a packet used for transmission according to theBluetooth specification is illustrated in FIG. 2, this format not beingused for some types of control packets. A standard packet has a fieldfor an access code having the length of 72 bits and a header field of alength of 54 bits. There is a field for the payload which has a lengththat can range from zero to a maximum of 2745 bits. The AM_ADDR islocated in the packet header followed by some control parameters, e.g. abit indicating acknowledgement or retransmission request of the previouspacket, when applicable, and a header error check (HEC).

The access code used in a packet can be one of three different types:Channel Access Code (CAC), Device Access Code (DAC), and Inquiry AccessCode (IAC):

-   -   The Channel Access Code identifies a channel that is used in a        certain piconet, i.e. essentially the CAC identifies the        piconet. All packets exchanged within a piconet carry the same        the CAC. The CAC is derived from the BD_ADDR of the master unit        of the piconet.    -   The Device Access Code is derived from a BD_ADDR of a particular        unit adapted to communicate according to the Bluetooth        specification. It is used for special signalling procedures,        e.g. the PAGE procedure.    -   The Inquiry Access Code appears in two variants: the General        Inquiry Access Code (GIAC) and the Dedicated Inquiry Access Code        (DIAC). Both are used in the INQUIRY procedure, that will be        explained in more detail below.

The format of the payload depends on the type of packet. The payload ofan ACL packet consists of a header, a data field and, with the exceptionof AUX1 type packets, a cyclic redundancy check (CRC). The payload of aSynchronous Connection Oriented (SCO) packet consists of a single datafield. In addition, there are hybrid packets including two data fields,one for synchronous data and one for asynchronous data. Packers in whichthe payload does not include a CRC are neither acknowledged norretransmitted.

The protocol layers of a network formed by units adapted to communicateaccording to the Bluetooth specification are illustrated in FIG. 3. TheBaseband, LMP and L2CAP represent existing Bluetooth specific protocols.The “High level protocol or application” layer represents protocols thatmay or may not be Bluetooth specific while the Network layer is notdefined in the Bluetooth specification.

A limitation of the Bluetooth specification is that therein no method isexplicitly provided to address and route packets from one piconet toanother. Thus, inter-piconet communication performed in a scatternet isnot specified, although there are proposals for how to achieve this.

An important capability in any ad hoc networking method is the neighbourdiscovery feature. Such a feature is also defined in the Bluetoothspecification. Without a neighbour discovery capability, a unit adaptedto communicate according to the Bluetooth specification would not becapable of finding any other units adapted to communicate according tothe Bluetooth specification with which it could communicate andconsequently no ad hoc network could be formed. The neighbour discoveryprocedure according to the Bluetooth specification consists of theINQUIRY message and the INQUIRY RESPONSE message. An “inquiry” procedureis defined which is used in applications where the device address of thedestination is unknown to the source. For example, public facilitieslike printers or facsimile machines can be considered. Alternatively,the inquiry procedure can be used to discover other units adapted tocommunicate according to the Bluetooth specification which are locatedwithin the range of the transceiver of a considered unit adapted tocommunicate according to the Bluetooth specification.

A unit adapted to communicate according to the Bluetooth specificationand wanting to discover neighbouring units also adapted to communicateaccording to the Bluetooth specification, neighbouring meaning withinradio coverage of the first unit, will repeatedly transmit according towell specified timing and frequency sequences, INQUIRY messages andlisten for INQUIRY RESPONSE messages, which are optional. An INQUIRYmessage consists of only an Inquiry Access Code (IAC). It does notcontain any information about the source but may indicate the class ofdevices which should respond. The Inquiry Access Code can be a GeneralInquiry Access Code (GIAC), which is sent to discover any unit adaptedto communicate according to the Bluetooth specification in theneighbourhood, or a Dedicated Inquiry Access Code (DIAC), which is sentto discover only a certain type of units adapted to communicateaccording to the Bluetooth specification, for which a particular DIAC isdedicated.

A unit adapted to communicate according to the Bluetooth specificationreceiving an INQUIRY message, including a GIAC or an appropriate DIAC,may respond by sending an INQUIRY RESPONSE message. The INQUIRY RESPONSEmessage is actually an Frequency Hop Synchronisation (FHS) packet, seeFIG. 4. The FHS packet is a special control packet revealing, amongother things, the transmitting unit and the clock of the transmittingunit. The payload field in such a packet includes eleven fields. Allfields in the packet, except the AM_ADDR field, and of course the“Undefined” field, indicate properties or parameters of the unit thatsends the FHS packet. The Lower Address Part (LAP), Upper Address Part(UAP) and Non-significant Address Part (NAP) fields together form theBD_ADDR. The “class of device” field indicates the class of device ofthe unit. The CLK field contains the current value of the internal clockof the unit. The SR, SP and “Page scan mode” fields all contain controlparameters concerning the PAGE procedure. The contents of the AM_ADDRfield can be used to assign an AM_ADDR to a unit which will become aslave in a piconet, and otherwise these three bits should all be set tozero. The “Undefined” field is reserved for future use and includes twobits, which should be set to zero. By listening for INQUIRY RESPONSEmessages the unit that initiated the INQUIRY procedure can collect theBD_ADDR and internal clock values of the neighbouring units also adaptedto communicate according to the Bluetooth specification.

An FHS packet is also used for other purposes according to the Bluetoothspecification, in addition to the use as the INQUIRY RESPONSE message,e.g. for synchronising the frequency hop channel sequence, a pagedmaster response and in the master-slave switch.

Related to the INQUIRY procedure is the PAGE procedure, which is used toestablish an actual connection between two units adapted to communicateaccording to the Bluetooth specification. Once the BD_ADDR of aneighbouring unit is known to a unit, the paging unit, as a result of anINQUIRY procedure, the neighbouring unit can be paged by sending a PAGEmessage. Also the knowledge of the internal clock value of the unit tobe paged will potentially speed up the PAGE procedure, since it makes itpossible for the paging unit to estimate when and on which frequency hopchannel the neighbouring unit will listen for PAGE messages.

A PAGE message consists of the Device Access Code (DAC), derived fromthe BD_ADDR of the paged unit. A unit adapted to communicate accordingto the Bluetooth specification and receiving a PAGE message includingits own DAC responds by sending an identical packet, i.e. including onlythe DAC of the paged unit. The paging unit then replies by sending anFHS packet, including the BD_ADDR of the paging unit, the current valueof the internal clock of the paging unit, the AM_ADDR assigned to thepaged unit and some other parameters, see FIG. 4. The paged unit thenresponds once again by transmitting its DAC and thereby the connectionbetween the two units is established.

If the paging unit already was the master of a piconet, the paged unithas now joined this piconet as a new slave unit. Otherwise, the twounits have just formed a new piconet having the paging unit as themaster unit. Since the INQUIRY message does not include any informationon the sender thereof, in particular not its BD_ADDR, the unit thatinitiated the INQUIRY procedure is the only unit that can initiate asubsequent PAGE procedure. Thus, the unit initiating an INQUIRYprocedure will also be the master of any new piconet that is formed as aresult of a subsequent PAGE procedure. If considered necessary, however,the roles of master and slave can be switched using themaster-slave-switch mechanism defined in the Bluetooth specification.This is a complex and extensive procedure resulting in a redefinition ofthe entire piconet, involving all other slave units in the piconet.

The INQUIRY and PAGE procedures are well specified in the Bluetoothspecification. They are the only tools that are needed to form a newpiconet or to join an existing one. Although the tools as such are wellspecified, there are no rules or guidelines as to how to use them. Whenneighbours are discovered there is no way of knowing to which thereof aconnection should be made to in order to form an appropriate piconet.Even if the master-slave-switch mechanism exists, using it is anextensive procedure and it is difficult to know when to use it in orderto improve the efficiency of piconet. Hence, piconets will be more orless established at random, often resulting in far from optimal piconetand scatternet structures.

An exception exists in the case where the unit wanting to establish aconnection already knows the BD_ADDR of the unit to which it wants toconnect. The use of the Dedicated Inquiry Access Code in the INQUIRYmessages and the class of device field in the FHS packet, indicating theclass of device of the unit that sends the FHS packet, can also be usedto impose a certain control of the establishment of piconets.Nevertheless, units adapted to communicate according to the Bluetoothspecification and forming a piconet or a scatternet generally result inless than optimal networks being formed.

The information exchanged during the INQUIRY and PAGE procedures is notsufficient to determine how to establish connections in order to form anefficient piconet. Furthermore, the fact that the unit that initiates anINQUIRY procedure will have to be the master of any new piconet that isformed as a result of a subsequent PAGE procedure makes the forming ofpiconets and scatternets inflexible. The complex and extensivemaster-slave-switch mechanism is too inefficient to compensate for thisinflexibility.

Consider, for instance, a scenario in which a number of people havegathered in a conference room for a meeting. They turn on their laptops,which have circuits to communicate according to the Bluetoothspecification and at random start to send INQUIRY messages and listenfor INQUIRY messages from other units. Some other people may also laterjoin the meeting resulting in more INQUIRY procedures. The result ofthese random INQUIRY procedures, followed by PAGE procedures and theforming of piconets, may well be something like the interconnectednetworks shown in FIG. 5, whereas an optimal piconet structure could besimilar to the network shown in FIG. 6.

When a new unit moves into the neighbourhood of an existing piconet,e.g. as could be the case in this meeting scenario, it may want tocommunicate with the units connected to that piconet. The unit wouldthen obviously like to join the piconet as a new slave unit. However,the means by which to achieve this as provided by the Bluetoothspecification are few and inefficient. The unit would have to wait andhope to be discovered by the master unit of the piconet, by receiving anINQUIRY message from the master unit, and to be subsequently paged andconnected. However, when receiving an INQUIRY message, it does notprovide any information about the sender of the message. Therefore, anINQUIRY message received by the unit may also be transmitted by a slaveunit, which is actually more likely, since there are usually more slaveunits than master units.

Waiting and hoping constitute no efficient method, but the Bluetoothspecification allows an alternative way. The unit can itself sendINQUIRY messages and hope to receive a response from the master unit ofa piconet. However, the INQUIRY RESPONSE message, an FHS message, doesnot include any information on the fact whether the sender is a masteror a slave of a piconet. Therefore, the unit has to take a chance andpage and connect to a responding unit, hoping that the responding unitturns out to be the master of the piconet. If the unit is lucky, andactually manages to connect to the master unit of an existing piconet, anew piconet is formed having the inquiring and paging unit as the masterunit and the paged master unit of the already existing piconet as aslave unit.

To join the old piconet the newly arrived unit has to request amaster-slave switch. This master-slave switch will make the master unitof the old piconet, which is also a slave unit of the new piconet, amaster also in the new piconet. Then, the two piconets will merge intoone piconet making the new unit a slave unit in the merged piconet.Hence, joining an existing piconet as a slave unit requires first of allluck, and possibly also a master-slave switch.

SUMMARY OF THE INVENTION

The procedures for establishing piconets and scatternets and connectingnew units to already existing piconets according to the Bluetoothspecification would be facilitated and better piconet and scatternettopologies would be possible to achieve, if more information about theinvolved units could be exchanged before the piconets and scatternetsare actually established and if the connection procedure could be mademore flexible.

For this purpose procedures can be used for exchanging small, butvaluable, pieces of information during the INQUIRY and PAGE proceduresand a procedure can be used to increase the control of the forming ofpiconets and scatternets, based on the exchanged information.

The present invention relates to a method of forming ad hoc wirelessnetworks, and more particularly, to forming wireless networks accordingto the Bluetooth specification and how a unit adapted to communicateaccording to the Bluetooth specification may best discover masters inexisting piconets and be connected as a slave to those masters withouthaving to use the master-slave switch.

An object of the present invention is to provide a method of more easilyfinding out the roles, master or slave, of units located in theneighbourhood of a considered unit, i.e. whether the neighbouring unitsare masters or slaves in already existing piconets.

Another object of the present invention is to allow the unit to connectto a master as a slave without using the complicated master-slaveswitching.

Generally, the method can be divided into two basic parts.

First, in the INQUIRY procedure, a few additional pieces of informationare exchanged between two units adapted to communicate according to theBluetooth specification. The additional information informs on thestatus of the responding unit in an existing piconet or existingpiconets, what facilitates the decision of the unit, which sends theINQUIRY message, on which unit to attempt to be connected to. A similarimprovement of the INQUIRY procedure can be achieved in an alternativeway, by using a modified INQUIRY message. These two alternatives, whichtogether constitute the first basic part of the method, are described infurther detail below.

In the second basic part of the method, a procedure is provided by whichthe initial inquiring and paging unit can become a slave unit in a newformed piconet or in an already existing piconet. This new mechanism isused during the PAGE procedure and hence the use of the complex andextensive master-slave-switch mechanism is avoided, although there maybe other situations in which the master-slave-switch mechanism is stillneeded. This second basic part of the method is also described infurther detail below.

Some merits of the proposed method include providing means to impose anintelligent control of the forming of piconets in general. Efficientprocedures are provided allowing a unit to join an existing piconet. Inaddition, the method allows exchange of piconet related informationduring the INQUIRY procedure and enhances the INQUIRY procedure so thatthe master units of existing piconets can be discovered. The secondbasic part of the method provides a procedure by which the initiallyinquiring and paging unit can become a slave unit in a now formed orpreviously existing piconet without going through the master-slaveswitch procedure. Furthermore, the method as proposed can be used tofacilitate reforming scatternet structures.

The preferred procedures of the proposed method do not implymodifications of any of the existing message formats according to theBluetooth specification although some of the alternative proceduresrequire modifications of existing message formats.

Although the preferred embodiments of the proposed are directed to asystem of units adapted to communicate according to the Bluetoothspecification, the disclosed method is also applicable to general ad hocnetworks which have features similar to those formed according to theBluetooth specification. The proposed method provides means to impose anintelligent control of the forming of ad hoc networks in general andallows exchange of ad hoc network related information during a neighbourdiscovery procedure. A procedure is provided for the unit initiating theestablishment of an ad hoc network to transfer the specific role of theinitiator to another unit during the establishment phase.

Additional objects and advantages of the invention will be set forth inthe description which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention. The objectsand advantages of the invention may be realized and obtained by means ofthe methods, processes, instrumentalities and combinations particularlypointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

While the novel features of the invention are set forth withparticularly in the appended claims, a complete understanding of theinvention, both as to organization and content, and of the above andother features thereof may be gained from and the invention will bebetter appreciated from a consideration of the following detaileddescription of non-limiting embodiments presented hereinbelow withreference to the accompanying drawings, in which:

FIG. 1 a-1 c are diagrams of various master-slave relationships in asystem of units adapted to communicate according to the Bluetoothspecification,

FIG. 2 is a picture illustrating the standard format of a packetaccording to the Bluetooth specification,

FIG. 3 is a diagram illustrating the protocol layers according to theBluetooth specification,

FIG. 4 is a picture illustrating the format of an FHS packet,

FIG. 5 is a diagram of a suboptimal piconet and scatternet structure,

FIG. 6 is a diagram of an optimal piconet structure, and

FIG. 7 is a flow diagram illustrating the steps executed in proceduresexecuted when a unit tries to contact other units and then connects toanother unit.

DETAILED DESCRIPTION

An ad hoc network contains a master or master unit and at least oneslave or slave unit. Another unit capable of connecting to the ad hocnetwork can approach or become located in the neighbourhood of thenetwork and then a procedure can be used for the other unit to discoverthe status of the units already connected in the ad hoc network. Thisprocedure can be called a neighbour discovery procedure and in theprocedure an exchange of information related to the network is made.

In the following description the units described are generally assumedto be units adapted to communicate according to the Bluetoothspecification and also terminology according to the Bluetoothspecification will be used, as has already been the case in the majorpart of the discussion given above. However, it will also be brieflydescribed how the procedures described can be applied to other generalmethods of establishing ad hoc networks.

The neighbour discovery procedure allows a unit approaching an existingad hoc network or piconet to discover whether a neighbouring unit isconnected to the existing piconet and, in such a case, whether it isconnected as a master or as a slave. In particular, the procedure allowsthe unit to discover a master in an existing piconet. Severalalternative procedures will be described which can improve theprocedures according to the Bluetooth specification.

The FHS packet according to the Bluetooth specification, see the formatthereof as illustrated in FIG. 4, which is used as a response message,the INQUIRY RESPONSE message, from a unit responding to an inquirymessage, and in other procedures as well, includes some informationabout the unit sending the FHS packet, but no information on the piconetto which the unit may be connected to and on the status of the unit ifconnected in such a piconet. Including such information would give theinquiring unit some essential background knowledge to be used when theinquiring unit decides on which other units that it will attempt to beconnected to.

A basic piece of information is whether the responding unit is a masterof an existing piconet or not. A meeting scenario, as described in thegeneral discussion above, illustrates the importance of this piece ofinformation. This can be coded using one of the two undefined bits inthe PHS packet, as shown in FIG. 4. Preferably, setting the selected bitto one would mean that the sending unit is the master of a piconet,while setting the bit to zero would mean that the sending unit is notthe master of a piconet.

The information in the FHS packet which is related to an already formedpiconet can be extended by using also the second of the two undefinedbits. This can be used to indicate whether the sending unit is a slaveunit in at least one piconet. Preferably, setting the bit to one wouldmean that the sending unit is a slave unit in one or more piconets,while setting the bit to zero would mean tat the sending unit is not aslave unit of any piconet at all.

The four possible combinations of the two bits are:

-   00 The sending unit is not connected to a piconet or the sending    unit does not support this use of the “Undefined” field.-   01 The sending unit is the master unit of a piconet.-   10 The sending unit is a slave unit in one or more piconets.-   11 The sending unit is the master unit of one piconet and a slave    unit in one or more other piconets.

Observe that in the picture of FIG. 4, the right bit indicates the“master status” and do the left bit indicates the “slave status” of thesending unit.

Backwards compatibility with the Bluetooth specification is achieved bythis solution, since the specification of the FHS packet states that thetwo undefined bits should be set to zero. This would indicate that thesending unit is not connected to any piconet.

An alternative way to include this information in the FHS packet is touse the class of device field, as seen in FIG. 4. The Bluetoothspecification allows alternative coding of a part of the class of devicefield. A new coding could be used to include the above information, andpossibly also other useful piconet and scatternet related information.

Yet another alternative way to include this information in the FHSpacket is to use the AM_ADDR field. According to the Bluetoothspecification of the FHS packet the tree bits of the AM_ADDR fieldshould be set to zero in the case where the FHS packet is used as anINQUIRY RESPONSE message, since assigning an AM_ADDR is not applicablein that case.

Hence, these three bits are available to carry other information, e.g.piconet related information. By using the AM_ADDR field eight differentstates could be coded instead of the four states coded with the twoundefined bits. It would also be possible to use both the undefined bitsand the AM_ADDR field to code piconet related or other information,resulting in five bits corresponding to 32 possible states. In thefollowing discussion it will be assumed that only the three bits of theAM_ADDR field is used for his purpose, while the two undefined bits arestill undefined, unless explicitly stated otherwise. Two of the threebits in the AM_ADDR field could be used to code exactly the sameinformation as suggested for the two undefined bits above. The third bitcould be used to indicate whether the sending unit, when subsequentlybeing paged, will want to connect to the paging unit as a slave unit oras a master unit using the modified PAGE procedure according to theprocedure as described below.

A reason for not wanting to become a master unit when subsequently beingpaged may e.g. be that the considered approaching unit is already themaster unit of a piconet having seven active slave units, giving no roomfor yet another active slave unit. Preferably, setting the third bit toone would indicate that the sending unit prefers to have the role of themaster unit after a subsequent modified PAGE procedure, whereas settingthe third bit to zero would indicate a preference for the slave role.This coding provides backwards compatibility with the Bluetoothspecification, since according to the specification of the FHS packetthe three bits of the AM_ADDR field should be set to zero when the FHSpacket is used as an INQUIRY RESPONSE message. The following are theresulting possible combinations of the three bits of the AM_ADDR field:

-   000 The sending unit is not connected to a piconet and prefers to be    a slave unit after a subsequent PAGE procedure or the sending unit    does not support this use of the AM_ADDR field.-   001 The sending unit is the master unit of a piconet and prefers to    be a slave unit after a to subsequent PAGE procedure.-   010 The sending unit is a slave unit in one or more piconets and    prefers to be a slave unit after a subsequent PAGE procedure.-   011 The sending unit is the master unit of one piconet and a slave    unit in one or more other piconets and prefers to be a slave unit    after a subsequent PAGE procedure.-   100 The sending unit is not connected to a piconet and prefers to be    a master unit after a subsequent modified PAGE procedure.-   101 The sending unit is the master unit of a piconet and prefers to    be a master unit after a subsequent modified PAGE procedure.-   110 The sending unit is a slave unit in one or more piconets and    prefers to be a master unit after a subsequent modified PAGE    procedure.-   111 The sending unit is the master unit of one piconet and a slave    unit in one or more other piconets and prefers to be a master unit    after a subsequent modified PAGE procedure.

In the format illustrated in FIG. 4 the right-most bit indicates the“master status”, the middle bit indicates the “slave status”, and theleft-most bit indicates the “role preference” of the sending unit.

If the AM_ADDR field is used for coding piconet related information incombination with the above described use of the two undefined bits, theAM_ADDR field could e.g. be used to indicate the number of active slaveunits in the piconet in which the sending unit is the master unitprovided that the two undefined bits indicates that unit is the masterunit of a piconet, i.e. for the codes “01” or “11” as defined above. Thenumber of slave units in the piconet cam be encoded in the AM_ADDR fieldas an ordinary binary number. Since this field has three bits it canencode the number of slave units in the piconet, since there can be amaximum of seven slaves. Setting the three bits to zero would mean thatno information on the number of active slave units is available. Also,when the undefined bits indicate that the sending unit is not the masterunit of a piconet, i.e. for the codes “00” or “10” as defined above, thethree bits of the AM_ADDR field should be set to zero. This use of anall-zero AM_ADDR field provides backwards compatibility with theBluetooth specification, since the specification of the FHS packetstates that these three bits should be set to zero when the FHS packetis used as an INQUIRY RESPONSE message. The resulting combinations ofthe two undefined bits and the three bits of the AM_ADDR field when usedin the way described in this paragraph are listed in Table 1.

TABLE 1 Use of the two undefined bits and the three bits of the AM_ADDRfield for defining the status of a responding unit The two The Meaningof the undefined Meaning of the two AM_ADDR field three bits of the bitsundefined bits field AM_ADDR field 00 The sending unit 000 Thiscombination is not connected should be used to a piconet 001-111 Thesecombina- tions should not be used 01 The sending unit 000 No informationis the master of available on a piconet slave units 001-111 The numberof active slave units in the piconet 10 The sending unit 000 Thiscombination is a slave unit should be used in one or more 001-111 Thesecombina- piconets tions should not be used 11 The sending unit 000 Noinformation is the master of available on one piconet and slave units aslave in one 001-111 The number of or more piconets active slave units

If an INQUIRY RESPONSE message is received indicating that the sendingunit is a slave unit in one or more piconets, the undefined bits arecoded “10”. It would then be useful if the BD_ADDR of the master unit ofthe responding piconet of the unit could be retrieved. Similarlyretrieved addresses BD_ADDRs of multiple master units would be useful ifthe responding unit is connected to more than one piconet. A retrievedBD_ADDR of a master unit could be used to page the master unit,preferably using the modified PAGE procedure according to thedescription below, according to which the paging unit is allowed to joinan existing piconet without performing a master-slave switch. Sincethere are not enough available bits to code an address BD_ADDR in theFHS packet, another method must to be used to retrieve the address.

It should be pointed out that coding the information by the twoundefined bits in the FHS message, in the class of device field, or bythe three bits of the AM_ADDR field in the FHS packet is not the onlypossible method. Useful information which may be encoded, in an FHSpacket or in a modified PAGE RESPONSE message as described below,includes information about:

-   (1) whether the sending unit is connected to a piconet or not,-   (2) whether the sending unit is a master or a slave or slaves or    both,-   (3) whether the sending unit prefers to be a master or a slave unit    after a subsequent PAGE procedure,-   (4) the number of slaves in a piconet,-   (5) the BD_ADDR(s) of the master(s) of the existing piconet(s) in    which the sending unit is a slave member,-   (6) the clock values, as estimated by the sending unit, of the    master unit(s) of the existing piconet(s) in which the sending unit    is a slave member,-   (7) inter-piconet scheduling parameters,-   (8) battery status,-   (9) traffic parameters, and/or-   (10) priority parameters.

The inquiring unit or units can use this information when making thedecision as to the units to which it should try to establishconnections.

If the numbers of available bits in the FHS packet is not enough toencode the information to be transferred, another method has to be used.One possibility is to use a modified PAGE procedure, in which the pagingunit indicates in the PAGE message that the intention of the pagingprocedure is not to establish a connection, but to retrieve usefulinformation, as outlined above. Such information could, e.g. be one ormultiple master unit BD_ADDR(s) of the master unit(s) of the piconet(s)to which the paged unit is connected as a slave unit. The paged unitwould then respond by transmitting a new type of PAGE RESPONSE message,or by transmitting with the regular one, i.e. a packet consisting ofonly the Device Access Code of the responding unit, including therequested amended information. e.g. BD_ADDR(s) in this example. In thecase of master BD_ADDR(s) being requested, the response message couldpossibly include the current clock value of the master unit, or of eachof the master units if multiple master units are indicated, as estimatedby the responding slave unit, to facilitate the subsequent paging of amaster unit. The indication in the modified PAGE message could be e.g. asingle bit extension indicating that all available information isrequested or a multiple bit extension indicating the request of relevantsubsets of the available information.

Another method for a unit to discover master units of already existingpiconets in the vicinity of the considered unit would be to introduce anew Dedicated Inquiry Access Code (DIAC). Only units that are masterunits would respond to an INQUIRY message including such a “masterDIAC”. A unit that is not a master unit would discard the INQUIRYmessage. The information or indication signifying“intended-only-for-master-units” could also be an extension ormodification of the Inquiry Access Codes (IACs). Then all the IACs, theGeneral Inquiry Access Code (GIAC) as well as the Dedicated InquiryAccess Codes (DIACs), could carry an additional indication that theINQUIRY message is intended only for master units. A DIAC carrying thisindication would be intended for all master units, whereas a DIACcarrying the indication would be intended for the master units of theunit type for which the DIAC is dedicated. This method of using modifiedInquiry Access Codes in the INQUIRY message may be combined with theother methods described above.

The above described method involving a modified DIAC could be extendedto include the use of new DIACs, as DIACs of their own or, as describedabove, as extensions or modifications to existing DIACs and the existingGIAC. Such other new DIACs—or DIAC/GIAC extersions/modifications—couldbe DIACs dedicated for units having a certain status. A unit having hiscertain status could be e.g.:

-   -   a unit being a slave unit in only one piconet,    -   a unit being a slave unit in at least one piconet,    -   a unit being a slave unit in more than one piconet,    -   a unit being a slave unit in one or more piconets, but no master        unit in none,    -   a unit being a slave unit in one or more piconets and a master        unit in one piconet,    -   a unit being a master unit in one piconet, but not a slave unit        in none,    -   a unit that is not connected to any piconet,    -   a unit having a low current traffic load,    -   a unit having a high current traffic load.

This list is of course not exhaustive, since other types of status couldbe associated with new DIACs—or DIAC/GIAC extensions/modifications. Onlyunits that have the particular status indicated by a certain DIAC—orGIAC extension/modification—would respond to an INQUIRY messageincluding this DIAC—or GIAC extension/modification. Alternatively, ifthe particular status is indicated by an extension to or modification ofan existing DIAC, only the units of the type indicated by the DIAC,which also have the status indicated by the extension or modification,would respond to an INQUIRY message carrying this extended of modifiedDIAC.

The preferred alternative is to use the four combinations of the twoundefined bits of the FHS packet to convey information about the sendingof the status of the unit in existing piconets, possibly combined withthe method using the new “master DIAC”.

Once the considered unit has discovered the masters in neighbouringpiconets as outlined above it may want to connect to a master as a slavewithout the problems associated with the master-slave switch mechanism.

Using the procedure as outlined above an approaching unit can discover amaster unit of an already existing piconet. The master unit isdiscovered when an INQUIRY RESPONSE message, indicating that theresponding unit is a master unit, using a new indication in the FHSpacket or simply by responding to an INQUIRY message dedicated formaster units, is received, possibly along with a number of INQUIRYRESPONSE messages from slave units. The BD_ADDR of a master unit canalso have been retrieved from a slave unit in the same piconet using themodified PAGE procedure.

When a unit has discovered a master unit of an already existing piconet,the unit may want to connect to this master unit as a slave. If thediscovered master unit has indicated that it prefers to be a slave unitafter a subsequent PAGE procedure, provided that this type ofindication, as previously outlined, is used, the considered unit maychoose to:

-   (1) continue to try to connect to the master unit as a slave unit,-   (2) try to connect to the master unit as a master unit, thereby not    joining the piconet of the discovered master unit, but making the    discovered master unit a slave unit in a piconet in which the    considered unit is the master unit, or-   (3) refrain from paging the discovered master unit. To be able to do    this without performing a master-slave switch a new mechanism is    required. For his purpose the following modified PAGE procedures can    be used.

Like the normal PAGE procedure according to the Bluetooth specificationthe modified PAGE procedure begins with transmitting a PAGE message,consisting of only the DAC of the paged unit, and is followed by anidentical response package received from the paged unit. The differencecompared to the method according to the Bluetooth specification is thatin the subsequent FHS packet from the paging unit an indication isincluded, indicating that the paging unit actually wants to be paged bythe currently paged unit. One of the two undefined bits in the FHSpacket could be used for this indication. A special use of these bits inthe neighbour discovery procedure has been described above and thus theycan here be used for another purpose.

Preferably, to provide backwards compatibility with the Bluetoothspecification which states that the two undefined bits should be set tozero, the bit should be set to one when indicating that a reversedpaging direction is requested. The three bits of the AM_ADDR in an FHSpacket indicating a request of reversed paging direction should be setto zero. Actually, an alternative way to include the indication would beto simply let the all-zero AM_ADDR indicate a request of reversed pagingdirection when the FHS packet is used in the PAGE procedure. The twoundefined bits would then still be undefined or could be used to codethe same piconet related information as described above in the neighbourdiscovery procedure.

When a request for a reversed paging direction is received by a unitbeing paged, there are two alternative ways to handle the reversal ofthe paging direction:

-   (1) the current PAGE procedure is terminated, immediately followed    by a new one initiated by the previously paged unit, or-   (2) the paging direction is immediately reversed, without any    termination of procedure, by making the unit receiving the request    for reversed paging direction send an FHS packet, with all    parameters set as if the sender is the paging unit, to the unit    sending the request. In the former case the new PAGE procedure, in    the reversed direction, proceeds just as a regular PAGE procedure.    In the latter case the unit receiving the second FHS packet, i.e.    the unit requesting the reversal of the paging direction, responds    by sending a packet including only the DAC of the unit, i.e. just as    the final message of the regular PAGE procedure, thereby concluding    the reversed PAGE procedure.

If the initially paged unit in the above two cases does not accept areversal of the paging direction, e.g. because it already is a masterunit and can not accept any more slave units in its piconet, this isindicated to the paging unit by responding to the FHS packet bytransmitting a second FHS packet including the same indication ofrequest for reversal of the paging direction, i.e. with the relevant,previously undefined, bit set or with the AM_ADDR field set to all zerosor both. The unit receiving this indication that the reversal of thepaging direction is not accepted. i.e. the unit that initiated the PAGEprocedure, can then choose to either proceed with the PAGE procedurewithout reversing the direction or to abandon the PAGE procedure. If itchooses to proceed, this can be done in two alternative ways:

-   (1) by restarting the PAGE procedure by sending a new initial PAGE    message, or-   (2) by sending a third FHS message, in the initial direction, this    time without the indication of request for reversal of the paging    direction.

An alternative procedure for reversal of the paging direction could beto make the initial PAGE message carry the indication of the request forreversal of paging direction. Since the reversal of the paging directionrequires that the BD_ADDR or the DAC of the is unit initiating the PAGEprocedure be transferred to the initially paged unit, it is preferablethat the indication consists of the BD_ADDR or the DAC of the sendingunit. In this alternative the actual reversal of the paging directioncould be performed either by terminating the PAGE procedure after thefirst modified PAGE message, immediately followed by a new PAGEprocedure initiated by the previously paged unit, or the pagingdirection could be immediately reversed, without termination, by lettingthe unit receiving the request for reversed paging direction send an FHSpacket, having all parameters set as if the sender is the paging unit,to the unit sending the request. In both cases, the respective procedureproceeds as a regular PAGE procedure.

The procedures described in this section may be used even if the pagedunit is not a master unit. There may be reasons for the paging unit tobecome a slave of the new piconet that will be formed.

The preferred procedure is to indicate the request for reversal of thepaging direction using one of the undefined bits in the FHS packet andimmediately thereafter to reverse the paging direction by making thereceiver of the first FHS packet return another FHS packet and to thenproceed as in a normal PAGE procedure.

The procedures described above are not limited to units adapted tocommunicate according to the Bluetooth specification and can be used forunits adapted to communicate with each other using a method having someproperties similar to that defined by the Bluetooth specification.

Generally, such units are adapted to form distinct, albeit dynamic, adhoc networks and they use a neighbour discovery procedure inestablishing such networks. Information of the status of the unitsconnected in an already existing ad hoc network is transferred in theneighbour discovery procedure, as described above. Also other usefulunit or network related information can be transferred, e.g. the numberof units in the existing ad hoc network, addresses of other units in thead hoc network, clock values of the unit itself and/or of other units inthe ad hoc network, scheduling parameters, battery status, trafficparameters, priority parameters, etc. Such received information can thenbe used in the unit which tries to connect to ad hod networks whendeciding which ad hoc network(s) to join, how to join it/them andwhether to establish and with which other units to establish a new orseveral new ad hoc networks. The received information could also be usedto facilitate reforming of existing ad hoc network structures.

When establishing an ad hoc network, if the initiator of theestablishment automatically gets a certain specific role in the ad hocnetwork, e.g. a master or slave role, a procedure can be provided, asdescribed above, to make the initiating unit request from another unitthat it takes over the role of initiator. This procedure is signalledeither by a new parameter in an existing message used in theestablishment phase or by a new message.

In FIG. 7 a flow diagram is shown illustrating the steps executed when afirst unit tries to establish contact with other units in a neighbourdiscovery procedure and connects to another unit in a network formingprocedure as described above, the steps being executed primarily forunits adapted to communicate according to the Bluetooth specification.In the left column the steps executed by the first unit are illustratedand in the right column the steps executed by other units areillustrated. The procedure starts in a block 800 where the first unitsends an INQUIRY message or several such messages. Any other unit in thevicinity of the first unit can receive such a message. In the exampleshown an INQUIRY message is received by a second unit in a block 802, bya third unit in a block 804 and by a fourth unit in a block 806. Eachunit that has received an INQUIRY message replies by sending an INQUIRYRESPONSE message. In the block 808 the second unit sends an INQUIRYRESPONSE message back to the first unit indicating that it is a slaveunit in an already formed piconet and then in a block 810 this firstINQUIRY RESPONSE message is received by the first unit which detects thestate of the sender of the message. In a block 812 the third unit sendsan INQUIRY RESPONSE message back to the first unit and in the message isindicated that the sender of the message is a master of an alreadyformed piconet and then in a block 814 this second INQUIRY RESPONSEmessage is received by the first unit which decodes the stateinformation of the sending unit. In a block 816 the fourth unit sends anINQUIRY RESPONSE message back to the first unit, the message havingadditional information telling that the unit sending the message is aslave in an already formed piconet and then in a block 818 the thirdINQUIRY RESPONSE message is received by the first unit which decodes theadditional information.

Out of the second, third and fourth responding units only the third unitindicated that it was a master unit in some piconet. Then in a block 820the first unit chooses to connect to the third unit as a slave unit inthe piconet in which the third unit is the master.

In order for the first unit to be able to connect to the third unit as aslave without using the master-slave switch the procedure continues asfollows: In a block 822 the first unit sends a PAGE message to the thirdunit. Thereafter in a block 824 the third unit receives the PAGE messagefrom the first unit. In a block 826 the third unit responds to the PAGEmessage by sending its Device Access Code (DAC). Then in the next block828 the first unit receives the response from the third unit. In a block830 the first unit sends an FHS packet to the third unit requesting areversal of the paging direction. Then in the next block 832 the thirdunit receives the FHS packet from the first unit. In a block 834 thethird unit reverses the paging direction by sending an FHS packet to thefirst unit. Then in the next block 836 the first unit receives the FHSpacket from the third unit. In a block 838 the first unit responds tothe FHS packet by sending its DAC. The third unit receives in a block842 the response from the first unit. Then in the blocks 840 and 844following the blocks 838 and 842 respectively the first unit becomesconnected to the third unit as a slave unit and the third unit becomesconnected to the first unit as a master unit.

While specific embodiments of the invention have been illustrated anddescribed herein, it is realized that numerous additional advantages,modifications and changes will readily occur to those skilled in theart. Therefore, the invention in its broader aspects is not limited tothe specific details, representative devices and illustrated examplesshown and described herein, Accordingly, various modifications may bemade without departing from the spirit or scope of the general inventiveconcept as defined by the appended claims and their equivalents. It istherefore to be understood that the appended claims are intended tocover all such modifications and changes as fall within a true spiritand scope of the invention.

1. A method for connecting a first unit to an ad hoc network comprisingat least two units having different roles, the units being adapted tocommunicate according to the Bluetooth specification, the ad hoc networkcomprising at least one piconet formed according to the Bluetoothspecification, the roles of the units in the ad hoc network comprisingmaster and slave, the method comprising the steps of: the first unitestablishing contact with at least one of the units of the ad hocnetwork and said at least one unit, in the establishment of contact,sending information to the first unit, the information including anindication of the role of said at least one unit in the ad hoc network;the first unit thereafter, based on said information, connecting to saidat least one unit, the first unit thereby becoming connected to the adhoc network; wherein the step of establishing contact, the first unitsends at least one INQUIRY message and said at least one unit respondsby sending an INQUIRY RESPONSE message comprising a Frequency HopSynchronization (FHS) packet, the FHS packet including information ofthe status of said at least one unit in the at least one piconet, theFHS packet further including information as to at least one of thefollowing: whether the responding unit is connected to at least one ofsaid at least one piconet, whether the responding unit is a slave in atleast one of said at least one piconet, whether the responding unitprefers to be a master or a slave after a subsequent PAGE procedure,number of slaves in at least one of said at least one piconet, theBD_ADD(s) of at least one master unit of said at least one piconet wherethe responding unit is a slave member, the clock value(s) of at leastone master unit of said at least one piconet where the responding unitis a slave member, inter-piconet scheduling parameters at least one unitthat is connected to at least two piconets, the battery status of theresponding unit, traffic parameters in at least one of the piconets orpriority parameters.
 2. A method for connecting a first unit to an adhoc network comprising at least two units having different roles, theunits being adapted to communicate according to the Bluetoothspecification, the ad hoc network comprising at least one piconet formedaccording to the Bluetooth specification, the roles of the units in thead hoc network comprising master and slave, the method comprising thesteps of: the first unit establishing contact with at least one of theunits of the ad hoc network and said at least one unit, in theestablishment of contact, sending information to the first unit, theinformation including an indication of the role of said at least oneunit in the ad hoc network; the first unit thereafter, based on saidinformation, connecting to said at least one unit, the first unitthereby becoming connected to the ad hoc network; wherein the step ofestablishing contact, the first unit sends at least one INQUIRY messageand said at least one unit responds by sending an INQUIRY RESPONSEmessage comprising a Frequency Hop Synchronization (FHS) packet, the FHSpacket including information of the status of said at least one unit inthe at least one piconet; wherein the information is encoded using atleast one of two undefined bits in the FHS packet.
 3. A method accordingto claim 2, wherein one of said at least two undefined bits encodeswhether the responding unit is a master of a piconet.
 4. A methodaccording to claim 2, wherein one of said at least two undefined bitsencodes whether the responding unit is a slave in at least one piconet.5. A method for connecting a first unit to an ad hoc network comprisingat least two units having different roles, the units being adapted tocommunicate according to the Bluetooth specification, the ad hoc networkcomprising at least one piconet formed according to the Bluetoothspecification, the roles of the units in the ad hoc network comprisingmaster and slave, the method comprising the steps of: the first unitestablishing contact with at least one of the units of the ad hocnetwork and said at least one unit, in the establishment of contact,sending information to the first unit, the information including anindication of the role of said at least one unit in the ad hoc network;the first unit thereafter, based on said information, connecting to saidat least one unit, the first unit thereby becoming connected to the adhoc network; wherein the step of establishing contact, the first unitsends at least one INQUIRY message and said at least one unit respondsby sending an INQUIRY RESPONSE message comprising a Frequency HopSynchronization (FHS) packet, the FHS packet including information ofthe status of said at least one unit in the at least one piconet;wherein the information is encoded using the class of device field inthe FHS packet.
 6. A method for connecting a first unit to an ad hocnetwork comprising at least two units having different roles, the unitsbeing adapted to communicate according to the Bluetooth specification,the ad hoc network comprising at least one piconet formed according tothe Bluetooth specification, the roles of the units in the ad hocnetwork comprising master and slave, the method comprising the steps of:the first unit establishing contact with at least one of the units ofthe ad hoc network and said at least one unit, in the establishment ofcontact, sending information to the first unit, the informationincluding an indication of the role of said at least one unit in the adhoc network; the first thereafter, based on said information, connectingto said at least one unit, the first unit thereby becoming connected tothe ad hoc network; wherein the step of establishing contact, the firstunit sends at least one INQUIRY message and said at least one unitresponds by sending and INQUIRY RESPONSE message comprising a FrequencyHop Synchronization (FHS) packet, the FHS packet including informationof the status of said at least one unit in the at least one piconet;wherein the information is encoded using an AM_ADDR field in the FHSpacket.
 7. A method according to claim 6, wherein the AM_ADDR field isused to encode whether the responding unit, when subsequently paged,will want to connect to the paging unit as a slave or a master.
 8. Amethod for connecting a first unit to an ad hoc network comprising atleast two units having different roles, the units being adapted tocommunicate according to the Bluetooth specification, the ad hoc networkcomprising at least one piconet formed according to the Bluetoothspecification, the roles of the units in the ad hoc network comprisingmaster and slave, the method comprising the steps of: the first unitestablishing contact with at least one of the units of the ad hocnetwork and said at least one unit, in the establishment of contact,sending information to a first unit, the information including anindication of the role of said at least one unit in the ad hoc network;the first thereafter, based on said information, connecting to said atleast one unit, the first unit thereby becoming connected to the ad hocnetwork; wherein the step of establishing contact, the first unit sendsat least one INQUIRY message and said at least one unit responds bysending an INQUIRY RESPONSE message comprising a Frequency HopSynchronization (FHS) packet, the FHS packet including information ofthe status of said at least one unit in the at least one piconet;wherein the information is encoded using a combination of the undefinedbits, a class of device field, and an AM_ADDR field in the FHS packet.9. A method according to claim 8, wherein the AM_ADDR is used to encodethe number of active slave units in the piconet for which respondingunit is a master.
 10. A method for connecting a first unit to an ad hocnetwork comprising at least two units having different roles, the unitsbeing adapted to communicate according to the Bluetooth specification,the ad hoc network comprising at least one piconet formed according tothe Bluetooth specification, the roles of the units in the ad hocnetwork comprising master and slave, the method comprising the steps of:the first unit establishing contact with at least one of the units ofthe ad hoc network and said at least one unit, in the establishment ofcontact, sending information to the first unit, the informationincluding an indication of the role of said at least one unit in the adhoc network; the first unit thereafter, based on said information,connecting to said at least one unit, the first unit thereby becomingconnected to the ad hoc network; wherein the step of establishingcontact, the first unit sends at least one INQUIRY message and said atleast one unit responds by sending an INQUIRY RESPONSE messagecomprising a Frequency Hop Synchronization (FHS) packet, the FHS packetincluding information of the status of said at least one unit in the atleast one piconet; wherein the responding unit is a slave in a piconet;and, wherein the first unit sends a PAGE to the slave indicating thefirst unit intent to retrieve the at least one address (BD_ADDR) for theat least one master for the slave and the slave sending a PAGE RESPONSEmessage containing the requested at least one BD_ADDR.
 11. A methodaccording to claim 10, wherein the PAGE RESPONSE includes at least onecurrent clock value of said at least one master units of the respondingunit.
 12. A method according to claim 10, wherein the PAGE RESPONSEfurther includes information as to at least one of the following:whether the responding unit is connected to at least one of said atleast one piconet, whether the responding unit is a slave in at leastone of said at least one piconet, whether the responding unit prefers tobe a master or a slave after a subsequent PAGE procedure, the number ofslaves in at least one of said at least one piconet, the BD_ADDR(s) ofat least one master unit of said at least one piconet where theresponding unit is a slave member, the clock value(s) of at least onemaster unit of said at least one piconet where the responding unit is aslave member, inter-piconet scheduling parameters of at least oneBluetooth that is connected to at least two piconets, the battery statusof responding unit, traffic parameters in at least one of the piconetsor priority parameters.
 13. A method for connecting a first unit to anad hoc network comprising at least two units having different roles, theunits being adapted to communicate according to the Bluetoothspecification, the ad hoc network comprising at least one piconet formedaccording to the Bluetooth specification, the roles of the units in thead hoc network comprising master and slave, the method comprising thesteps of: the first unit establishing contact with at least one of theunits of the ad hoc network and said at least one unit, in theestablishment of contact, sending information to the first unit, theinformation including an indication of the role of said at least oneunit in the ad hoc network; the first unit thereafter, based on saidinformation, connecting to said at least one unit, the first unitthereby becoming connected to the ad hoc network; wherein the step ofestablishing contact, the first unit sends at least one INQUIRY messageand said at least one unit responds by sending an INQUIRY RESPONSEmessage comprising a Frequency Hop Synchronization (FHS) packet, the FHSpacket including information of the status of said at least one unit inthe at least one piconet; wherein the INQUIRY message contains aDedicated Inquiry Access Code which is dedicated to, and will only beresponded to, by one of the following: a unit being a slave unit in oneand only one piconet, a unit being a slave unit in at least one piconet,a unit being a slave unit in more than one piconet, a unit being a slaveunit in one or more piconets, but a master unit in none, a unit being aslave unit in one or more piconets and a master unit in one piconet, aunit being a master unit in one piconet, but a slave unit in none, aunit that is not connected to any piconet, a unit with low currenttraffic load, or a unit with high current traffic load.
 14. A methodaccording to claim 13, wherein the INQUIRY message contains a DedicatedInquiry Access Code (DIAC) which is only responded to by master units.15. A method for connecting a first unit to an ad hoc network comprisingat least two units having different roles, the units being adapted tocommunicate according to the Bluetooth specification, the ad hoc networkcomprising at least one piconet formed according to the Bluetoothspecification, the roles of the units in the ad hoc network comprisingmaster and slave, the method comprising the steps of: the first unitestablishing contact with at least one of the units of the ad hocnetwork and said at least one unit, in the establishment of contact,sending information to the first unit, the information including anindication of the role of said at least one unit in the ad hoc network;the first unit thereafter, based on said information, connecting to saidat least one unit, the first unit thereby becoming connected to the adhoc network; wherein in the establishment of contact, the first unitsends at least one INQUIRY message and said at least one unit respondsby sending an INQUIRY RESPONSE message comprising a Frequency HopSynchronization packet, the INQUIRY message containing Dedicated InquiryAccess Code which is only responded to by units having the role ofmaster.
 16. A method for connecting a first unit to an ad hoc networkcomprising at least two units having different roles, the units beingadapted to communicate according to the Bluetooth specification, the adhoc network comprising at least one piconet formed according to theBluetooth specification, the roles of the units in the ad hoc networkcomprising master and slave, the method comprising the steps of: thefirst unit establishing contact with at least one of the units of the adhoc network and said at least one unit, in the establishment of contact,sending information to the first unit, the information including anindication of the role of said at least one unit in the ad hoc network;the first unit thereafter, based on said information, connecting to saidat least one unit, the first unit thereby becoming connected to the adhoc network; wherein in the establishment of contact, the first unitsends at least one INQUIRY message and said at least one unit respondsby sending an INQUIRY RESPONSE message comprising a Frequency HopSynchronisation packet, the INQUIRY message containing a DedicatedInquiry Access Code (DIAC) which is dedicated to, and is only beresponded to, by one of the following: a unit being a slave unit in oneand only one piconet, a unit being a slave unit in at least one piconet,a unit being a slave unit in more than one piconet, a unit being a slaveunit in one or more piconets, but a master unit in none, a unit being aslave unit in one or more piconets and a master unit in one piconet, aunit being a master unit in one piconet, but a slave unit in none, aunit that is not connected to any piconet, a unit with low currenttraffic load, or a unit with high current traffic load.
 17. A methodaccording to claim 16, wherein the INQUIRY message contains a DedicatedInquiry Access Code (DIAC) which is only responded to by master units.18. A method for connecting a first unit to an ad hoc network comprisingat least two units, the at least two units having different roles, theunits being adapted to communicate according to the Bluetoothspecification, the ad hoc network comprising at least one piconet formedaccording to the Bluetooth specification, the roles of the units in thead hoc network comprising master and slave and said at least one unithaving the role of master, the method comprising the steps of: the firstunit establishing contact with at least one of the units of the ad hocnetwork; the first unit thereafter connecting to said at least one unit,the first unit thereby becoming connected to the ad hoc network; whereinin the step of connecting, the first unit chooses or determines theroles of itself and of said at least one unit in the ad hoc networkformed after the first unit becoming connected; wherein in the step ofconnecting, a PAGE message is sent from the first unit to said at leastone unit, thereafter a PAGE RESPONSE message is sent from said at leastone unit to first unit, and finally a Frequency Hop Synchronization(FHS) packet is sent from the first unit to said at least one unit, theFHS packet including an indication that the first unit has determined toreverse the paging direction from said at least one unit to the firstunit.
 19. A method according to claim 18, wherein the reversal isperformed by terminating the current PAGE procedure and initiating a newPAGE procedure from the master to the first unit.
 20. A method accordingto claim 18, wherein the reversal is performed by the master Bluetoothwhich receives the request for reversal sending an FHS packet to thefirst unit with all FHS parameters set as if the sender is the pagingunit and the first unit responding with a packet including only thefirst unit DAC, thereby concluding the reversed page procedure.
 21. Amethod according to claim 18 wherein the paged unit does not accept thereversal of paging direction, and wherein the paged unit responding tothe FHS packet with a second FHS packet including the same indicationrequest for reversal of paging direction and the first unit receivingthis second FHS packet choosing to either proceed with the PAGEprocedure without reversing abandoning the PAGE procedure.
 22. A methodaccording to claim 21, wherein if the first unit chooses to proceed withthe PAGE procedure it proceeds by restarting the PAGE procedure bysending a new initial PAGE message.
 23. A method according to claim 21,wherein if the first unit chooses to proceed with the PAGE procedure itproceeds by sending a third FHS message without an indication of requestfor reversal of paging direction.
 24. A computer program productdirectly loadable into the internal of a digital computer, comprisingsoftware code portions for performing the steps of the methods of or themethods performed by any block or device according to claim 1 when theproduct is run on a computer.
 25. A computer program product stored on acomputer usable medium, comprising readable program means for causing acomputer to control the execution of the steps of the methods performedby any block or device according to claim
 1. 26. A computer programproduct directly loadable into the internal of a digital computer,comprising software code portions for performing the steps of themethods of or the methods performed by any block or device according toclaim 18 when the product is run on a computer.
 27. A computer programproduct stored on a computer usable medium, comprising readable programmeans for causing a computer to control the execution of the steps ofthe methods performed by any block or device according to claim 18.